package com.flydog.mall.service.pms;

import com.flydog.mall.common.api.PageResponse;
import com.flydog.mall.dto.PmsProductAttributeCategoryItem;
import com.flydog.mall.entity.pms.PmsProductAttributeCategory;

import java.util.List;
import java.util.Optional;

/**
 * @author Cao
 * @description 商品属性分类
 * @create 2021-03-23
 */


public interface PmsProductAttributeCategoryService {
    /**
     * 创建分类
     * @param name 分类名称
     * @return 创建的数量
     */
    int create(String name);

    /**
     * 修改分类
     * @param id 分类id
     * @param name 分类名称
     * @return 修改数量
     */
    int update(Long id, String name);

    /**
     * 删除分类
     * @param id 分类id
     * @return 删除数量
     */
    int delete(Long[] id);

    /**
     * 获取一个分类信息
     * @param id 分类编号
     * @return 分类信息
     */
    Optional<PmsProductAttributeCategory> getItem(Long id);

    /**
     * 分页获取分类数据
     * @param pageSize 分布大小
     * @param pageNum 当前页码
     * @return 分类数据
     */
    PageResponse<PmsProductAttributeCategory> getList(Integer pageSize, Integer pageNum);

    /**
     * 获取所有分类数据
     * @return 分类数据列表
     */
    List<PmsProductAttributeCategory> getList();

    /**
     * 获取包含属性的属性分类
     * @return 包含属性的属性分类
     */
    List<PmsProductAttributeCategoryItem> getListWithAttribute();
}
